
var data = [];
var userRole = [];
var department = [];
var provideOrg = [];

/*
    data是个二维数组，length表示有几行数据
*/
window.onload = function () {
    getData();
    load();
    // add界面
    getAttrbute("addUserRole","userRole",userRole);
    getAttrbute("addDepartment","department",department);
    getAttrbute("addProvideOrg","provideOrg",provideOrg);
};

/**
 * 获取数据
 */
function getData() {
    $.ajax({
        url: "http://127.0.0.1:8023/abac/policy/info",
        type: "GET",
        dataType: "JSON",
        async:false,    // 取消异步
        success: function(res) {
            if (res.status.code == 1) {
                console.log(res);
                data = res.result.data;
            } else {
                alert("数据获取失败");
            }
        }
    });
}

/**
 * 页面初始化
 */
function load() {
    // 自定义变量nums记录当前数据情况
    var nums;
    // 若数据小于等于十行，默认全部显示第一页就行了，否则只显示十条数据，后面根据按钮动态获取需要的数据
    if (data.length <= 10) {
        nums = data.length;
    } else {
        nums = 10;
    }
    
    //通过for循环，将所有信息都拼接到一个字符串里
    //定义一个变量，用于存储拼接的字符串
    var currentRow = "";
    for(var i = 0; i< nums; i++) {
        currentRow += "<tr>";
        // 第i行数据
        for(var val in data[i]) {
            currentRow += "<td>" + data[i][val] + "</td>";
        }
        currentRow += "<td><a onclick='deletePolicy(this)'>删除</a></td>"
        currentRow += "</tr>"; 
    }
    //将拼接的字符串放进tbody里
    document.getElementById("tbody").innerHTML = currentRow;
    // 更新当前页码
    document.getElementById('currentPage').innerText = 1;
    // 更新总数据
    document.getElementById('totalRows').innerText = data.length;
    // 更新总页数
    document.getElementById('totalPages').innerText = Math.ceil(data.length / 10);;
}

/**
 * 获取ABAC属性
 */
function getAttrbute(elementId,type,data) {
    $.ajax({
        url: "http://127.0.0.1:8023/abac/attribute/info",
        type: "GET",
        dataType: "JSON",
        data:{type:type},
        async:false,    // 取消异步
        success: function(res) {
            if (res.status.code == 1) {
                // console.log(res.result.data);
                data = res.result.data;
            } else {
                alert("数据获取失败");
            }
        }
    });
    // 填充数据
    fillData(elementId,data);
}

/**
 * 填充数据
 * elementId    元素id值
 * data     数据
 */
function fillData(elementId,data) {
    // 将数据放到下拉列表
    var element = document.getElementById(elementId);
    for(var i = 0; i < data.length; i++) {
        var option = document.createElement("option");
        option.innerText = data[i].name;
        element.append(option);
    }
    //创建一个隐藏起来的option，并将其置为选中状态
    var optionHide = document.createElement('option');
    optionHide.hidden=true;
    optionHide.id = elementId + "Selected";
    optionHide.selected = true;
    element.appendChild(optionHide);
}
